一樣是彭彭老師的教學影片,以下附上網址:
https://www.youtube.com/watch?v=OOJmhezLd4o&list=PL-g0fdC5RMboYEyt6QS2iLb_1m7QcgfHk&index=10
Python 函式參數詳解:參數預設值、名稱對應、任意長度參數 By 彭彭
參數預設資料
1.1 定義參數的預設值
1.2 呼叫函式時,可不給資料,直接使用預設值
參數名稱對應
2.1 呼叫函式時,用參數名稱來對應資料
任意長度的參數
3.1 定義任意長度的參數
3.2 使用 Tuple 處理參數
3.3 呼叫函式時,可給定任意長度的參數資料
1.1基本語法
def 函式名稱(參數名稱=預設資料)
函示內部的程式碼
1.2程式範例
def say(msg="Hello") # 參數 msg 預設為"Hello"
print(msg)
say("Hello Function") # 正常的運用參數顯示出我們要的資料
say() # 顯示出預設資料"Hello"
def power(base,exp=0): # 參數 exp 預設為0
print(base**exp) # 輸出 base 的 exp 次方
power(3,2) # 輸出 3 的 2 次方,會顯示出 9
power(4) # 輸出 4 的 0 次方,會顯示出 1
2.2程式範例
def divide(n1,n2):
result=n1/n2
print(result)
divide(2,4) # 2 放進 n1、4 放進 n2,最後顯示出 0.5
divide(n2=2,n1=4) # 按照名稱將 2 放進 n2、4 放進 n1,最後則會顯示出 2
3.2程式範例
def say(*msgs):
for msg in msgs: # 以 Tuple 的方式處理並一一顯示出來
print(msg)
say("Hello","Arbitrary","Arguments") # 呼叫函式,傳入三個參數資料
def avg(*numbers): # 試著寫出一個計算平均數的函式
sum=0
for n in numbers:
sum=sum+n # 利用 sum 來將各個數字進行加總
print(sum/len(numbers)) # 利用 len(numbers) 計算出數字的個數,並用來當分母
avg(3,4) # 利用剛剛寫出來的 avg 函式即可迅速地進行運算
avg(3,5,10)
avg(1,4,-1,-8)
個人認為今天的內容其實比昨天的簡單,不過前提是昨天的函式基本運作有搞清楚。在影片中彭彭老師有提到,關於第二點的名稱對應,有些人會傾向於按照順序進行宣告比較不會造成困擾,因此名稱對應的功能其實不一定會需要用到,這個是我之前完全沒有考慮過的事情,可能常常寫 code 的人會比較傾向縮減程式碼,因此按照順序就可以少打一些參數?我自己覺得能進行名稱對應的話會比較方便讓他人觀看,可能有人不希望讓其他人可以改寫之類的原因,甚至要想辦法讓其他人看不懂才好。